home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SGI Varsity Update 1998 August
/
SGI Varsity Update 1998 August.iso
/
dist
/
dist6.5
/
il_dev.idb
/
usr
/
include
/
il
/
ilAffineWarp.h.z
/
ilAffineWarp.h
Wrap
C/C++ Source or Header
|
1998-07-29
|
3KB
|
101 lines
#if 0
Copyright (c) 1991 SGI All Rights Reserved
THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF SGI
The copyright notice above does not evidence any
actual or intended publication of such source code,
and is an unpublished work by Silicon Graphics, Inc.
This material contains CONFIDENTIAL INFORMATION that
is the property of Silicon Graphics, Inc. Any use,
duplication or disclosure not specifically authorized
by Silicon Graphics is strictly prohibited.
RESTRICTED RIGHTS LEGEND:
Use, duplication or disclosure by the Government is
subject to restrictions as set forth in subdivision
(c)(1)(ii) of the Rights in Technical Data and Computer
Software clause at DFARS 52.227-7013, and/or in similar
or successor clauses in the FAR, DOD or NASA FAR
Supplement. Unpublished- rights reserved under the
Copyright Laws of the United States. Contractor is
SILICON GRAPHICS, INC., 2011 N. Shoreline Blvd.,
Mountain View, CA 94039-7311
#endif
/*
ilAffineWarp implements a first degree polynomial warp in two dimensions
suitable for translations, rotations, and magnify/minify
*/
#ifndef _ilAffineWarp_h_
#define _ilAffineWarp_h_
#include <il/ilWarp.h>
#include <il/ilPolyDef.h>
class ilAffineWarp : public ilWarp {
public:
iflClassListDeclare
// external api: begin
ilAffineWarp(float xCon=0, float xX=1, float xY=0,
float yCon=0, float yX=0, float yY=1)
{ init(xCon, xX, xY, yCon, yX, yY); }
// external api: name=ilAffineWarpCoeff
ilAffineWarp(const ilAffine2D& xCoeff, const ilAffine2D& yCoeff)
{ init(xCoeff, yCoeff); }
// external api: name=initCoeff
void init(const ilAffine2D& xCoeff, const ilAffine2D& yCoeff)
{ xc = xCoeff; yc = yCoeff; warpChanged(); }
void init(float xCon=0, float xX=1, float xY=0,
float yCon=0, float yX=0, float yY=1)
{ xc.init(xCon, xX, xY); yc.init(yCon, yX, yY); warpChanged(); }
const ilAffine2D& getCoeffX() const { return xc; }
const ilAffine2D& getCoeffY() const { return yc; }
// external api: end
virtual ilWarp* copy() const;
virtual void eval(float& x, float& y, float& z,
float u, float v, float w) const;
virtual void dx(float& x, float& y, float& z,
float u, float v=0, float w=0) const;
virtual void dy(float& x, float& y, float& z,
float u, float v=0, float w=0) const;
virtual ilStatus invert(ilWarpQuality quality=ilWarpBest,
float ulo=0, float uhi=1,
float vlo=0, float vhi=1,
float wlo=0, float whi=0);
virtual void identity();
virtual ilStatus compose(const ilWarp& other,
ilWarpQuality quality=ilWarpBest);
virtual ilStatus infer(ilTiePointList& tiePoints,
ilWarpQuality quality=ilWarpBest);
virtual ilStatus getBBox(iflXYZfloat& min, iflXYZfloat& max,
int su, int sv, int sw,
int nu, int nv, int nw) const;
virtual int minimumNumberOfTies() const;
virtual void evalVector(float upos, float vpos, float ustep,
iflXYfloat* addrs, int count, float wpos=0) const;
private:
struct ilAffine2D xc, yc;
};
#endif